Skip to content

Conversation

@NicolasGorga
Copy link
Contributor

@NicolasGorga NicolasGorga commented Nov 10, 2025

Summary

Updated context passed for each variant when calculating prices so that region and customer coming from setPricingContext are not overriden if provided.

Please provide answer here

Otherwise you can't provide your own region and customer objects with additional information and you are left with the ones we pass as part of the cart object to the workflows that execute the hook.

Please provide answer here

Changed the order in which we define the default region and cart fields, taking their value from the cart, to before the destructured setPricingContextResult.

Please provide answer here

Testing — How have these changes been tested, or how can the reviewer test the feature?

Please provide answer here


Examples

Provide examples or code snippets that demonstrate how this feature works, or how it can be used in practice.
This helps with documentation and ensures maintainers can quickly understand and verify the change.

// Example usage

Checklist

Please ensure the following before requesting a review:

  • I have added a changeset for this PR
    • Every non-breaking change should be marked as a patch
    • To add a changeset, run yarn changeset and follow the prompts
  • The changes are covered by relevant tests
  • I have verified the code works as intended locally
  • I have linked the related issue(s) if applicable

Additional Context

fixes #13990
closes SUP-2647


Note

Adjust pricing context merge order so setPricingContext-provided customer and region are not overridden when calculating variant prices.

  • Core Flows (pricing):
    • In packages/core/core-flows/src/cart/workflows/get-variants-and-items-with-prices.ts, change merge order when building baseContext so customer and region from setPricingContextResult take precedence over cart-derived values when pricing variants.
  • Changeset:
    • Add patch changeset for @medusajs/core-flows.

Written by Cursor Bugbot for commit 010da73. This will update automatically on new commits. Configure here.

@NicolasGorga NicolasGorga requested a review from a team as a code owner November 10, 2025 01:03
@changeset-bot
Copy link

changeset-bot bot commented Nov 10, 2025

🦋 Changeset detected

Latest commit: 010da73

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 74 packages
Name Type
@medusajs/core-flows Patch
@medusajs/medusa Patch
integration-tests-http Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/draft-order Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-bundler Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/dashboard Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link

vercel bot commented Nov 10, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

8 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
api-reference Ignored Ignored Nov 17, 2025 6:52pm
api-reference-v2 Ignored Ignored Preview Nov 17, 2025 6:52pm
cloud-docs Ignored Ignored Preview Nov 17, 2025 6:52pm
docs-ui Ignored Ignored Preview Nov 17, 2025 6:52pm
docs-v2 Ignored Ignored Preview Nov 17, 2025 6:52pm
medusa-docs Ignored Ignored Preview Nov 17, 2025 6:52pm
resources-docs Ignored Ignored Preview Nov 17, 2025 6:52pm
user-guide Ignored Ignored Preview Nov 17, 2025 6:52pm

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

const baseContext = {
...filterObjectByKeys(cart, cartFieldsForPricingContext),
customer: cart.customer,
region: cart.region,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Pricing Context Ignores Custom Objects

After allowing setPricingContextResult to provide custom region and customer objects, the code still uses cart.region?.currency_code, cart.region_id, and cart.customer_id as fallbacks. This creates inconsistency when a custom region or customer is provided, causing the context to have mismatched IDs and currency codes that don't match the custom objects.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Invalid cart total and items price for customers with customer_group

3 participants